package net.pimpas.report.processor.common;

import java.io.Serializable;

import net.pimpas.report.processor.exception.CommonProcessorException;
import net.pimpas.report.processor.exception.FieldValidationException;
import net.pimpas.report.processor.field.Field;
import net.pimpas.report.processor.resolver.FieldPropertyResolver;

public interface CommonProcessor<T, X, Y extends CommonProcessorException> extends Serializable {
	T getType( );
	Field getField( );
	X process( String fieldAlias, FieldPropertyResolver resolver) throws Y;
	Object[] getValues( );
	void validate( FieldPropertyResolver resolver ) throws FieldValidationException;
}